<?php
namespace Framework\Library\Core;

/**
 * Web请求对象，包含可用的请求信息
 */
class Request{
	
	/**
	 * 被请求执行的应用程序模块 
	 * 
	 * 字符串值
	 */
	public $module = NULL;
	
	/**
	 * 被请求执行的应用程序模块的操作
	 * 
	 * 字付串值
	 */
	public $action = NULL;
	
	/**
	 * 传递给被请求执行的操作的数据
	 * 
	 * 这是一个索引数组，例如有两个参数须传递，
	 * 那么这个属性的值会是array('data1','data2');
	 * 另外参数是有顺序性的，用由0开始的索引号来并没有参数名，所以只能说第几个参数
	 */
	public $params = array();
	
	/**
	 * 从全局服务器变量中读取请求数据，初始化请求对象
	 */
	function __construct( $m = NULL, $a = NULL, $p = array() ) {
		
		if ($m === NULL){
			
			if (!empty($_GET['m'])) $this ->module = $_GET['m'];
			if (!empty($_GET['a'])) $this ->action = $_GET['a'];
			$this->initParams();
			
		}else{
			
			$this ->module = $m;
			$this ->action = $a;
			$this ->params = $p;
			
		}
		
	}
	
	private function initParams(){
		
		if (!empty($_GET)){
			
			for ( $i=0; !empty($_GET['p'.$i]); ++$i ){
				
				array_push($this->params,$_GET['p'.$i]);
				
			}
			
		}
		
	}
	
}